其實實際上在部署或是在github連接,SSH設定上都沒有說到非常複雜,但我會想分享是因為,我覺得可以遠程調用另一個作業系統蠻酷的,所以想在這個步驟多了解一些。
SSH(Secure Shell)是什麼?
SSH是一種應用層協議,它允許使用者在本地機器上遠程操作另一台電腦的作業系統,它提供了一個加密的通道,讓你能安全地在本機端和遠程主機之間進行通信。
為什麼需要SSH遠程調用?
在某些情況比如:在雲端建立server的時候,需要在上面安裝一些我們需要的軟體,這時候就會需要此技術(因為我們不可能真的去使用他們的主機然後操作)。
SSH建立基本流程
其實遠程調用只是”看起來”很像在直接使用對方的作業系統做操作,但實際上我們是在不斷的發送請求給對方,對方執行完之後把結果回傳,然後我們才看到畫面。
其實整個過程還是不斷地在傳輸,所以才會需要加密。
密鑰生成與部署:
SSH連接請求:
你用SSH客戶端,例如OpenSSH的ssh命令,嘗試連接到伺服器。
指令:ssh -i "<private_key>" user@hostname(在AWS主機詳情→連線→SSH用戶端)
在這個過程中,伺服器首先發送其公鑰的指紋給你,詢問你是否信任。
身份驗證(這整個過程又叫做數位簽章(digital signature)):
這個和一般的RSA加密稍有不同,一般的RSA加密會由公鑰加密私鑰解密。
這個身份驗證是數位簽章的其中一個功能(其他還有像確認文件是否被串改的等等…)
加密通道建立:
加密通道建立後的傳輸過程:
目前自己都還是以這個寶可夢專案有做到的部分去研究,SSH連線要研究的地方應該是還有很多,比如檔案上傳,這個我在後續的更新資料的部分在做分享。